import { useMemberStore } from '@/stores'

// 设置 路由拦截器，可以用于页面跳转时候可以判断有没有token 登录，没有就去登录即可
export default function inter() {
  const member = useMemberStore()
  const needLogin = ['../../pagesB/ks_lishi/index']
  const list = ['navigateTo', 'redirectTo', 'reLaunch', 'switchTab']
  list.forEach((item) => {
    //用遍历的方式分别为,uni.navigateTo,uni.redirectTo,uni.reLaunch,uni.switchTab这4个路由方法添加拦截器
    console.log(item, 'router list item')
    uni.addInterceptor(item, {
      invoke(e) {
        // 调用前拦截
        //获取用户的token
        console.log(e, 'routerjs invoke')
        const token = member.token
        //获取当前页面路径（即url去掉"?"和"?"后的参数）
        console.log(token, 'router index token')
        const url = e.url.split('?')[0]
        console.log(e.url, 'router index url')

        console.log(needLogin.includes(url))
        //判断要打开的页面是否需要验证登录
        if (needLogin.includes(url) && token == undefined) {
          uni.showModal({
            title: '提示',
            content: '需要登录才能访问',
            success: function (res) {
              if (res.confirm) {
                // 执行确认后的操作
                uni.navigateTo({
                  url: '/pages/login/login',
                  // success: function (res) {
                  //   uni.showToast({
                  //     title: '该页面需要登录才能访问，请先登录',
                  //     icon: 'error',
                  //     duration: 2000,
                  //   })
                  // },
                })
              } else {
                // 执行取消后的操作
                uni.showToast({
                  title: '取消成功',
                  icon: 'success',
                  duration: 2000,
                })
              }
            },
          })

          return false
        }

        return true
      },
      fail(err) {
        // 失败回调拦截
        console.log(err)
      },
    })
  })
}
